// 未优化的冒泡排序 
function bubbleSort1(arr) {
  let len = arr.length
  for (let i = 0; i < len; i++) { // 几轮排序
    for (let j = 0; j < len - 1; j++) { // 每轮比较几次
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
      }
    }
  }
  return arr
}

// 改进的冒泡排序 时间复杂度n2 空间1
function bubbleSort2(arr) {
  let len = arr.length
  for (let i = 0; i < len; i++) { // 几轮排序
    for (let j = 0; j < len - 1 - i; j++) { // 每轮比较几次
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
      }
    }
  }
  return arr
}

// 测试用例
const arr = [5, 4, 3, 2, 1]
console.log(bubbleSort1(arr))
console.log(bubbleSort2(arr))